//右滑关闭
mui.init({
	swipeBack: true,
});

var currentwindow;
var counts = "";
window.onload = function() {
	mui.plusReady(function() {
		// 强制设置开关状态为开启
		document.getElementById('ledModeSwitch').checked = true;
		$('.mui-switch').addClass('mui-active');

		// 初始化显示状态
		document.getElementById('ledModeOptions').style.display = 'block';
		document.getElementById('storageLocationGroup').style.display = 'none';

		// 初始化仓库
		WarehouseList();
		// 绑定输入事件
		bindInputEvents();


		// 确保开关点击事件绑定
		$(".mui-switch").off('click').on("click", function() {
			var checkbox = $(this).find("input[type='checkbox']");
			checkbox.prop("checked", !checkbox.prop("checked")).trigger("change");
			toggleLedMode();
		});

		// 关闭等待框
		plus.nativeUI.closeWaiting();
		// 设置初始焦点
		document.getElementById('LampNO').focus();
	});
}

var UserNO = localStorage.getItem("UserName");

// 初始化仓库
function WarehouseList() {
	xccpostAsync("api/PDA/GetWarehouseInfo", {}, function(data) {
		document.activeElement.blur();
		console.log(JSON.stringify(data));
		if (data.Code === 200) {
			data.Items.forEach(item => {
				$("#WarehouseList").append(
					`<option value="${item.WarehouseID}">${item.WarehouseName}</option>`
				);
			});
			// 设置初始焦点
			document.getElementById('LampNO').focus();
		} else {
			mui.toast("failed。" + data.Message, {
				duration: '1000',
				type: 'div'
			});
		}
		plus.nativeUI.closeWaiting(); // 关闭转圈圈特效
	}, function(error) {
		console.log("没有数据....");
		plus.nativeUI.closeWaiting(); // 关闭转圈圈特效
	});
}


/**
 * 绑定输入事件
 * - 当用户在 LampNO 输入框中按下回车键时，将焦点移动到 MaterialCode 输入框
 * - 当用户在 StorageNO 输入框中按下回车键时，将焦点移动到 MaterialCode 输入框
 * - 当用户在 MaterialCode 输入框中按下回车键时，调用 handleMaterialCodeScan 函数处理扫描事件
 */
function bindInputEvents() {
	// 绑定 LampNO 输入框的 keyup 事件
	$("#LampNO").keyup(function(event) {
		event.preventDefault();
		// 检查是否按下了回车键（keyCode 13）
		if (event.keyCode == 13) {
			// 延迟设置焦点到下一个输入框（可选）
			setTimeout(function() {
				$("#MaterialCode").focus();
			}, 100);
		}
	});

	// 绑定 StorageNO 输入框的 keyup 事件
	$("#StorageNO").keyup(function(event) {
		event.preventDefault();
		// 检查是否按下了回车键（keyCode 13）
		if (event.keyCode == 13) {
			// 延迟设置焦点到下一个输入框（可选）
			setTimeout(function() {
				$("#MaterialCode").focus();
			}, 100);
		}
	});

	// 绑定 MaterialCode 输入框的 keyup 事件
	$("#MaterialCode").keyup(function(event) {
		event.preventDefault();
		// 检查是否按下了回车键（keyCode 13）
		if (event.keyCode == 13) {
			// 延迟设置焦点到下一个输入框（可选）
			setTimeout(function() {
				// 调用 handleMaterialCodeScan 函数处理扫描事件
				handleMaterialCodeScan();
			}, 100);


		}
	});
	// 设置初始焦点
	document.getElementById('LampNO').focus();
}

/**
 * 处理 MaterialCode 扫描事件
 * - 获取 LED 模式开关状态
 * - 获取 MaterialCode 输入框的值
 * - 获取货架选项的值
 * - 根据 LED 模式开关状态，获取 ListingNO 的值
 * - 如果 MaterialCode 为空，显示提示信息并重新聚焦到 MaterialCode 输入框
 * - 调用 xccpostAsync 函数发送请求，处理返回的数据
 */
function handleMaterialCodeScan() {
	var IsLed_Mode = document.getElementById('ledModeSwitch').checked;
	var MaterialCode = $("#MaterialCode").val();
	var shelfOption;
	var ListingNO;
	var WarehouseID = $("#WarehouseList").val();
	if (IsLed_Mode) {
		shelfOption = $("#shelfOption").val();
		ListingNO = $("#LampNO").val();
	} else {
		shelfOption = "-1";
		ListingNO = $("#StorageNO").val();
	}
	// 检查 MaterialCode 是否为空
	if (!MaterialCode) {
		mui.toast("Please scan the Material Barcode。", {
			duration: '1000',
			type: 'div'
		});
		$("#MaterialCode").focus();
		return;
	}
	if (MaterialCode.indexOf("||") !== -1) { // 或者用 includes("||")
		MaterialCode = MaterialCode.split("||")[0];
		//console.log("解析到的条码:", firstBarcode); 
	}
	$("#MaterialCode").val(MaterialCode);
	// 发送请求
	xccFormPostAsync("api/PDA/PutOnMaterialBarcode", {
		BarcodeNO: MaterialCode,
		UserNO: UserNO,
		shelfOption: shelfOption,
		ListingNO: ListingNO,
		WarehouseID: WarehouseID

	}, function(data) {
		document.activeElement.blur();
		if (data.Code === 200) {
			$("#txtResult").val(MaterialCode + "," + ListingNO + ",Success!");
			if (shelfOption > -1) {
				if (shelfOption == 0) {
					$("#LampNO").val(data.Items[0].LampNO);
					$("#MaterialCode").val('');
					$("#MaterialCode").focus();
				} else {
					$("#LampNO").val('');
					$("#MaterialCode").val('');
					$("#LampNO").focus();
				}
			} else {
				StrCDs();
			}

		} else {
			playSound();
			$("#txtResult").val("Scan failed。" + data.Message);
			if (shelfOption > -1) {
				$("#LampNO").val('');
				$("#MaterialCode").val('');
				$("#LampNO").focus();
			} else {
				StrCDs();
			}
		}
		plus.nativeUI.closeWaiting(); // 关闭转圈圈特效
	}, function(error) {
		playSound();
		if (shelfOption > -1) {
			$("#LampNO").val('');
			$("#MaterialCode").val('');
			$("#LampNO").focus();
		} else {
			StrCDs();
		}
		plus.nativeUI.closeWaiting(); // 关闭转圈圈特效
	});

}

function StrCDs() {
	var isLedMode = document.getElementById('strCD').checked;
	if (isLedMode) {
		$("#MaterialCode").val('');
		$("#MaterialCode").focus();
	} else {
		$("#StorageNO").val('');
		$("#MaterialCode").val('');
		$("#StorageNO").focus();
	}

}


function toggleLedMode() {
	var isLedMode = document.getElementById('ledModeSwitch').checked;
	const storageGroup = document.getElementById('storageLocationGroup');
	const ledOptions = document.getElementById('ledModeOptions');

	// 更新开关UI状态
	if (isLedMode) {
		$('.mui-switch').addClass('mui-active');
	} else {
		$('.mui-switch').removeClass('mui-active');
	}
	// 切换显示
	ledOptions.style.display = isLedMode ? 'block' : 'none';
	storageGroup.style.display = isLedMode ? 'none' : 'flex'; // 关键修改

	// 清空输入并聚焦
	document.getElementById(isLedMode ? 'StorageNO' : 'LampNO').value = '';
	document.getElementById(isLedMode ? 'LampNO' : 'StorageNO').focus();
	// // 切换显示
	// if (isLedMode) {
	// 	ledOptions.style.display = 'block';
	// 	storageGroup.style.display = 'none';
	// 	document.getElementById('StorageNO').value = '';
	// 	document.getElementById('LampNO').focus();
	// } else {
	// 	ledOptions.style.display = 'none';
	// 	storageGroup.style.display = 'block';
	// 	document.getElementById('LampNO').value = '';
	// 	document.getElementById('StorageNO').focus();
	// }
}